macro(check_version req_version def_version)
if (CMAKE_CXX_STANDARD LESS ${req_version})
    message(FATAL_ERROR "CMAKE_CXX_STANDARD must be at least ${req_version}")
elseif (CMAKE_CXX_STANDARD GREATER_EQUAL  ${req_version})
    message(STATUS "Using C++${CMAKE_CXX_STANDARD}")
else ()
    message(STATUS "Not set C++ version,default is C++${def_version}")
    set(CMAKE_CXX_STANDARD ${def_version})
endif ()
endmacro()